/**
 * Created by way on 16/9/28.
 */

import cfg from '../config';
const $ = require('../lib/kdom');
import {getView, get, post ,myalertp,mycheckuser,SetCookie,getCookieVal,GetCookie,userOnoffpp} from '../util/api';// myalertp 封装的 alert提示弹层
//myalertp('passenger','出错了，获取客服联系电话失败！')
//import {getView, get, post ,myalertp,prototype,core,Converter,BusinessTravelTool,Dept,MGOpt,MemberOpt,OrderSubmitOpt,RsaTool,mycheckuser,SetCookie,getCookieVal,GetCookie} from '../util/api';// myalertp 封装的 alert提示弹层
let _view = require('raw!./passenger.html');

var bte =2;
var backFlight = '';// 存放 往返标记

var flightPes = null;
var  alertms = '';// 弹出层 提示语言

export default class {
      path = '/flightmb/passenger$';
      hash = '/flightmb/passenger';
      title = '常用乘机人';
      constructor(opt) {
        opt = opt || {};
        this.path = opt.path || this.path;
        this.hash = opt.hash || this.hash;
        this.title = opt.title || this.title;
      }

      // 输出视图
      view(cb) {
        if (!_view) {
          // 静态资源浏览器有缓存,增加时标,强制刷新!
          getView(`${cfg.view.searchJoin}?t=${(+new Date())}`, '', (rs) => {
            _view = rs;
            cb(null, _view);
          });
        } else{
          cb(null, _view);
        }
      }

      // 在已经加载的视图上操作
      bind(dv, params) {
          bte =params.btype;
           console.log(bte);

          if (bte ==1) { //  预定页面进入的
              alertms = ''
              //  返回上一页
               $.qu('.passenger-tt1').onclick = function(){
                     $.router.go('#!/flightmb/book',{},false)
               }
              backFlight =params.backFlight;
          }else{
              alertms = '抱歉，您的登陆超时，请重新登录~~';
              $.qu('.passenger-tt1').onclick = function(){
                   $.router.go('#!/flightmb/allmytickes',{},false)
              }
          }
          // 乘机人数据加载 需要验证登陆


          userOnoffpp('s', pullPassData,'passenger','.lodinpass','',alertms);
          //pullPassData();

          //mycheckuser('passenger',function (){
          //    console.log('乘机人登录验证通过')
          //    pullPassData();
          //})

           // 初始点击事件


           // 新增加乘机人
           $.qu('.addpger').onclick = function(){

               $.router.go('#!/flightmb/changepassenger',{btype:11,linktype:bte},true)
           }


      }
}
//借口模板

//  初始点击事件
function theClick(){
    //删除弹层
    $.each( $.qus('.mianpger-boxbtn1'),function () {
        this.onclick = function (e) {
            var that = this;
            //弹层

            $.qu('.mianpger-boxbtn1lay').style.display ='-webkit-box';
            $.qu('.boxbtn1lay-boxsp1').onclick = function(){
               // that.parentNode.style.display = 'none';
                var theid = that.parentNode.getAttribute('psid');

                var dataass={
                    id:theid
                };
                userOnoffpp('s', function(){
                    mypost('/ajaxpro/UairB2C.MGOpt,UairB2C.ashx', dataass, 'DelPassenger', (err, res) => {
                        var bdata =eval('(' +res+ ')');
                        //console.log(bdata)
                        if (bdata.value) {
                            var json = JSON.parse(bdata.value);
                            //console.log(json)
                            if (json) {
                                //重新加载  乘机人数据加载
                                pullPassData();
                            } else {
                                //alert("删除乘机人失败");
                                myalertp('passenger','删除乘机人失败')

                            }
                        }else{
                            //alert("删除乘机人失败");
                            myalertp('passenger','删除乘机人失败')

                        }
                    });

                },'passenger','.lodinpass','',alertms);




                //if(GetCookie('xhtime') ==1){
                //    console.log('删除乘机人登录验证通过，无')
                //    //UairB2C.MGOpt.DelPassenger(theid, function (rs) {
                //    //    if (rs.value) {
                //    //        rs = eval("(" + rs.value + ")");
                //    //        if (rs) {
                //    //            //重新加载  乘机人数据加载
                //    //            pullPassData();
                //    //        } else {
                //    //            //alert("删除乘机人失败");
                //    //            myalertp('passenger','删除乘机人失败')
                //    //        }
                //    //    }
                //    //})
                //
                //
                //    mypost('/ajaxpro/UairB2C.MGOpt,UairB2C.ashx', dataass, 'DelPassenger', (err, res) => {
                //        var bdata =eval('(' +res+ ')');
                //        if (bdata.value) {
                //            var json = JSON.parse(bdata.value);
                //            if (json) {
                //                //重新加载  乘机人数据加载
                //                pullPassData();
                //            } else {
                //                //alert("删除乘机人失败");
                //                myalertp('passenger','删除乘机人失败')
                //
                //            }
                //        }else{
                //            //alert("删除乘机人失败");
                //            myalertp('passenger','删除乘机人失败')
                //
                //        }
                //    });
                //
                //
                //
                //}else{
                //    mycheckuser('passenger',function (){
                //        SetCookie('xhtime',1,6);//  设置定时器 cookie 6分钟 值为1
                //        console.log('删除乘机人登录验证通过')
                //        //UairB2C.MGOpt.DelPassenger(theid, function (rs) {
                //        //    if (rs.value) {
                //        //        rs = eval("(" + rs.value + ")");
                //        //        if (rs) {
                //        //            //重新加载  乘机人数据加载
                //        //            pullPassData();
                //        //        } else {
                //        //            //alert("删除乘机人失败");
                //        //            myalertp('passenger','删除乘机人失败')
                //        //        }
                //        //    }
                //        //})
                //        mypost('/ajaxpro/UairB2C.MGOpt,UairB2C.ashx', dataass, 'DelPassenger', (err, res) => {
                //            var bdata =eval('(' +res+ ')');
                //            if (bdata.value) {
                //                var json = JSON.parse(bdata.value);
                //                if (json) {
                //                    //重新加载  乘机人数据加载
                //                    pullPassData();
                //                } else {
                //                    //alert("删除乘机人失败");
                //                    myalertp('passenger','删除乘机人失败')
                //
                //                }
                //            }else{
                //                //alert("删除乘机人失败");
                //                myalertp('passenger','删除乘机人失败')
                //
                //            }
                //        });
                //    })
                //}




                $.qu('.mianpger-boxbtn1lay').style.display ='none';
            }
            $.qu('.boxbtn1lay-boxsp2').onclick = function(){
                $.qu('.mianpger-boxbtn1lay').style.display ='none';
            }

            var e = e || window.e;
            e.stopPropagation();
        }

    })
    //修改乘机人
    $.each( $.qus('.mianpger-boxbtn2'),function () {
        var _that =this;
        _that.onclick = function (e) {
            var passdata ={
                 name : _that.getAttribute('name'),
                 age:_that.getAttribute('age'),
                 card : _that.getAttribute('card'),
                 nb : _that.getAttribute('nb'),
                 ftype: _that.getAttribute('ftype'),
                 fnumber : _that.getAttribute('fnumber')
            }

            $.router.go('#!/flightmb/changepassenger',{btype:22,linktype:bte,pda:passdata},true)
            var e = e || window.e;
            e.stopPropagation();
        }

    })
    // 筛选乘机人
    //  先隐藏 筛选功能
    //$.qu('.searpger').style.display ='none';
    //$.qu('.mianpger').style.top ='5.3rem';
    //$.qu('.searpger-bn').onclick = function(){
    //    var thename = $.qu('.searpger-te').value;
    //    if(thename !=''){
    //        var allnames = $.qus('.mianpger-name') ;
    //        var  arrdata = [];
    //        for(var i= 0;i<allnames.length;i++){
    //            var nameall= allnames[i].innerHTML;
    //            var myname1 =nameall.substring(nameall.length-4,nameall.length)
    //            var myname2 =nameall.replace(myname1,'')
    //            console.log(myname2)
    //            console.log(thename)
    //            if(thename == myname2){
    //
    //                arrdata.push(i)
    //            }
    //            allnames[i].parentNode.parentNode.style.display ='none';
    //        }
    //        console.log(arrdata)
    //        if(arrdata.length !=0){
    //            for(var j= 0;j<arrdata.length; j++){
    //                allnames[arrdata[j]].parentNode.parentNode.style.display ='block';
    //            }
    //        }else{
    //            alert('未找到对应联系人！')
    //            for(var i= 0;i<allnames.length;i++){
    //                allnames[i].parentNode.parentNode.style.display ='block';
    //            }
    //        }
    //
    //    }
    //}
}

//选择乘机人
function addthePeople(){
    var allbox =$.qus('.mianpger-box');

    for(var i=0;i<allbox.length;i++){
        allbox[i].onclick = function(){
            var odat ={
                psid: this.getAttribute('psid'),
                data: JSON.parse(this.getAttribute('data'))
            }
            if(odat.data.age == '儿童'){
                if(backFlight){ // 往返
                    //alert('儿童不能选择往返航班！')
                    myalertp('passenger','儿童不能选择往返航班！')

                }else{
                    //alert(bte)
                    if (bte ==1) {
                        //  返回上一页
                        $.router.go('#!/flightmb/book',{pbtype:1,pdata:odat},true)
                    }else{
                        // $.router.go('#!/flightmb/allmytickes',{},true)
                    }
                }
            }else{
                //alert(bte)
                if (bte ==1) {
                    //  返回上一页
                    $.router.go('#!/flightmb/book',{pbtype:1,pdata:odat},true)
                }else{
                    // $.router.go('#!/flightmb/allmytickes',{},true)
                }
            }
        }
    }


}

// 乘机人数据加载
function pullPassData(){
    $.qu('.lodinpass').style.display ='-webkit-box';
    var urlmy = flightUrl+ "/ajaxpro/UairB2C.MGOpt,UairB2C.ashx";
    var methodmy = "GetPassengers";

    var datamy = {
      'xslpath':'icbc/xslt/book-passengers.xslt'
    }
    var oTxt = null;
    var oC = null;
    var newOc = null;

    // var newData = null;
    var arrList = [];
    var newsss = null;
    // var oData2 = '';
    // var psData ='';
    // var xhr = '';
    // if(window.XMLHttpRequest){
    //     xhr = new XMLHttpRequest();
    // }else{
    //     xhr =new ActiveXObject(' Microsoft . XMLHTTP')
    // }
    //xhr.open('get','http://106.75.131.58:8015/icbc/xhService.ashx?act=GETPASSENGERS','false');
    // xhr.open('get',flightUrl+'/icbc/xhService.ashx?act=GETPASSENGERS','false');
    // xhr.send();
    // xhr.onreadystatechange = function(){
    //     if( xhr.readyState == 4){
    //         // ajax 响内容解析完成，可以在客户端调用了
    //         if(xhr.status == 200){
                
    //             //  判断服务器返回的状态 200 表示 正常
    //             var data =xhr.responseText;
    //             var  data1 = eval('('+data+')');
    //             console.log(data1)
    //             if(data1.Status == 1){ // 1 表示成功
    //                 psData =data1.Result.Passengers;
    //                 if(psData.length ==0){
    //                     $.qu('.pger-wrap').innerHTML='没有常用乘机人，请重新添加！'
    //                 }else{
    //                     topasengerHtml(psData);
    //                     theClick();
    //                     // 带数据返回预定界面
    //                     addthePeople();
    //                 }
    //             }else{ // 2 出错 或者未登录
    //                 console.log(data1)
    //             }
    //         }else{
    //             alert('出错了，Err' +xhr.status);
    //             myalertp('passenger','获取乘机人出错了，Err' +xhr.status)

    //         }
    //     }
    // }
    mypostAjax(urlmy, datamy, methodmy, function(a, b){
      if(a == null) {
           //成功
            $.qu('.lodinpass').style.display ='none';
            oTxt = JSON.parse(b).value;
            //var asID = 584837;
            //console.log(oTxt);
            oC=parseDom(oTxt);              
            newOc = oC[2].getElementsByTagName("input");
            if(newOc.length < 1) {
                 $.qu('.pger-wrap').innerHTML='没有常用乘机人，请重新添加！'
            }else {
                 //var newJson = newOc[2].getAttribute("data");
                 //var newData = eval("(" + newJson + ")");
                for(var i = 0; i<newOc.length; i++) {
                    newsss = newOc[i].getAttribute("data");
                    var newsssa = eval("(" +newsss + ")");
                    arrList.push(newsssa);
                }
                console.log(arrList);
                topasengerHtml(arrList);
                theClick();
                // 带数据返回预定界面
                addthePeople();
            }
          //console.log(newOc.length);
          //var arrList = [];
          
      } else {
        // alert('出错了，Err' +xhr.status);
        myalertp('passenger','获取乘机人出错了，Err')
      }
    });

}

//获取白名单;
// function getBankPeople() {
    
//     // console.log(JSON.stringfy(data));

//     return mypostAjax(urlmy, datamy, methodmy, function(a, b){
//       if(a == null) {
//           //成功
//           var oTxt = JSON.parse(b).value;
//           //var asID = 584837;
//           //console.log(oTxt);
//           var oC=parseDom(oTxt);              
//           var newOc = oC[2].getElementsByTagName("input");
//           //console.log(newOc.length);
//           //var arrList = [];
//           var newJson = newOc[2].getAttribute("data");
//           var newData = eval("(" + newJson + ")");
          
//           //console.log(newData);
//           return newData;
//       } else {
//         console.log("网络错误");
//       }
//     });
// }
//javascrip 解析　ｘｍｌ
function parseDom(arg) { 
　　 var objE = document.createElement("div"); 
　　 objE.innerHTML = arg; 
　　 return objE.childNodes; 
}

// 乘机人数据整合html
function topasengerHtml(psData){
    var str ='';
    var ruleType1 = null;
    var ruleType = null;
    for(var i=0;i<psData.length;i++){
        var theage =psData[i].Age;
        var theidno =  psData[i].idno;
        var theidtype =psData[i].idtype;
        ruleType1 = eval("(" +psData[i].ruleJson+ ")");
        // var theIDNoHide = psData.IDNoHide;
        if(theage =='儿童'){
            if(theidtype =='身份证'){
                 if(theidno.length<8){ // 说明为出生日期
                     theage = isAge(theidno, 12)?'儿童':'成人';
                 }else{ // 说明儿童为身份证
                     theage = isAge(theidno, 12)?'儿童':'成人';
                 }
            }else{
                // 不是身份证 还无法验证。。。
            }
        }else{
            if(theidtype =='身份证'){
                theage = isAge(theidno, 65)?'成人':'老人';
            }else{
                // 不是身份证 还无法验证。。。
            }
        }


        var  data1 = {
            name:psData[i].name,
            age:psData[i].age,
            idno:psData[i].idno ,
            idtype:psData[i].idtype ,
            phone:psData[i].phone ,
            ruleType:ruleType1.Type,
            deptId:psData[i].deptId,
            //ruleTxt:ruleType1.Name, // Type =1 同行最低
            //ruleTxt:ruleType1.Text,  // 温馨提示》》》》》
            noInsure:psData[i].noInsure,
            priceReason:psData[i].priceReason,
            reasonCode:psData[i].reasonCode,
            tripReason:psData[i].tripReason,
            tripType:psData[i].tripType,
            unitId:psData[i].unitId

        };
        var  data =JSON.stringify(data1)
        //console.log(JSON.parse(data).age)
        str+='<div class="mianpger-box" ruletype="'+ruleType1.Type+'"   psid="'+psData[i].id+'"  data='+data+'><p><span class="mianpger-name">'+psData[i].name+'('+psData[i].age+')</span></p>'+
            '<p><span class="mianpger-card">'+psData[i].idtype+'</span><span class="mianpger-num">'+hideInfo(psData[i].idno)+'</span></p>'+
            '<p><span class="mianpger-ph">手机号</span><span class="mianpger-phnum">'+hideTel(psData[i].phone)+'</span></p>'+
            '<span class="mianpger-boxbtn1">删除</span>'+
            '<span class="mianpger-boxbtn2" name="'+psData[i].name+'" age ="'+psData[i].age+'" card="'+psData[i].idtype+'"  nb="'+psData[i].idno+'"  ftype ="'+psData[i].id+'"  fnumber="'+psData[i].phone+'"  >修改</span></div>'

    }
    //console.log(psData);
    $.qu('.pger-wrap').innerHTML =str;
}

function isAge(time, y) {
    var myTime = new Date();    //数据类型为 对象
    var n = myTime.getFullYear()+toTwo(myTime.getMonth()+1)+toTwo(myTime.getDate());
    //console.log(n)


    //var n =New Data();
    var bData = time;
    var nData = new Date();
    var bYear = parseInt(bData.substr(0, 4));
    //console.log(bYear)
    var nYear = nData.getFullYear();
    var bMonth = parseInt(bData.substr(4, 2));
    var nMonth = nData.getMonth();
    var bDay = parseInt(bData.substr(6, 2));
    var nDay = nData.getDate();
    if (n != null && n != undefined) {
        nYear = parseInt(n.substr(0, 4));
        nMonth = parseInt(n.substr(4, 2));
        nDay = parseInt(n.substr(6, 2));
    }
    var childType = false;
    if (nYear - bYear > y) {
        childType = false;
    } else if (nYear - bYear == y) {
        if (nMonth - bMonth > 0) {
            childType = false;
        } else if (nMonth - bMonth == 0) {
            if (nDay - bDay >= 0) {
                childType = false;
            } else {
                childType = true;
            }
        } else {
            childType = true;
        }
    } else {
        childType = true;
    }
    return childType;
}

function toTwo( n ) {    //  转换为 带0的
    return n < 10 ?  '0' + n : '' + n;
}


//myajax

function mypostAjax(url, data, method, cb) {
    var  xhr ='';
    if(window.XMLHttpRequest){
        xhr = new XMLHttpRequest();
    }else{
        xhr =new ActiveXObject(' Microsoft . XMLHTTP')
    }

    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4 && cb) {
            if (xhr.status === 200)
                cb(null, xhr.responseText);
            else
                cb(new Error(xhr.status), xhr.responseText);
        }
    };

    // 异步 post,回调通知
    xhr.open('POST', url, true);
    let param = data;
    if ((typeof data) === 'object')
        param = JSON.stringify(data);

    xhr.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');
    xhr.setRequestHeader('X-AjaxPro-Method', method);
    xhr.send(param);
}


//身份证加"*"处理 分两种情况 成人 or 儿童

function hideInfo(e) {
    var d = e.length;
    return d<18?e:e.replace(/^(.{6})(?:\d+)(.{4})$/,"$1****$2");
}

//手机号加"*"处理
function hideTel(e) {
    return e.replace(/^(.{3})(?:\d+)(.{4})$/,"$1****$2");
}